[INFO] fetching crate openpylot 0.1.1...
[INFO] checking openpylot-0.1.1 against try#24e1a22664233bce1f9b5dc6eee7c1f74327e28c for pr-159343
[INFO] extracting crate openpylot 0.1.1 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate openpylot 0.1.1
[INFO] finished tweaking crates.io crate openpylot 0.1.1
[INFO] tweaked toml for crates.io crate openpylot 0.1.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate openpylot 0.1.1 on toolchain 24e1a22664233bce1f9b5dc6eee7c1f74327e28c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate openpylot 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b
[INFO] running `Command { std: "docker" "start" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b" "/opt/rustwide/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b" "/opt/rustwide/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]     Checking hybrid-array v0.4.10
[INFO] [stderr]     Checking mac v0.1.1
[INFO] [stderr]     Checking precomputed-hash v0.1.1
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking futf v0.1.5
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]     Checking dtoa-short v0.3.5
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking tendril v0.4.3
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]     Checking pom v1.1.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking clap_builder v4.5.60
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking getrandom v0.4.1
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking zune-jpeg v0.5.12
[INFO] [stderr]     Checking phf v0.10.1
[INFO] [stderr]     Checking servo_arc v0.3.0
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.31.0
[INFO] [stderr]     Checking webpki-roots v1.0.8
[INFO] [stderr]     Checking is-docker v0.2.0
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking rangemap v1.7.1
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking tempfile v3.26.0
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking is-wsl v0.4.0
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking inotify v0.11.1
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking rust-embed-utils v8.12.0
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]     Checking adobe-cmap-parser v0.4.1
[INFO] [stderr]     Checking type1-encoding-parser v0.1.0
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]     Checking lopdf v0.34.0
[INFO] [stderr]     Checking fuzzy-matcher v0.3.7
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking getopts v0.2.24
[INFO] [stderr]     Checking fd-lock v4.0.4
[INFO] [stderr]     Checking euclid v0.20.14
[INFO] [stderr]     Checking codepage v0.1.2
[INFO] [stderr]     Checking quick-xml v0.31.0
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking xml-rs v0.8.28
[INFO] [stderr]     Checking ego-tree v0.6.3
[INFO] [stderr]     Checking env_home v0.1.0
[INFO] [stderr]     Checking postscript v0.14.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking rustyline v14.0.0
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking which v7.0.3
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking open v5.3.3
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking uuid v1.21.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking pdf-extract v0.7.12
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling html5ever v0.27.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling rust-embed-impl v8.12.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking rust-embed v8.12.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling markup5ever v0.12.1
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking clap_complete v4.6.0
[INFO] [stderr]     Checking cssparser v0.31.2
[INFO] [stderr]     Checking multer v3.1.0
[INFO] [stderr]     Checking string_cache v0.8.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking calamine v0.26.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking cron v0.13.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rusqlite v0.33.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking scraper v0.20.0
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking docx-rs v0.4.19
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking openpylot v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ErrorDiagnoser` and `FeedbackProcessor`
[INFO] [stdout]  --> src/agent.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::learning::{ErrorDiagnoser, FeedbackProcessor, PromptEvolution};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuleSource` and `UserFeedback`
[INFO] [stdout]  --> src/agent.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::learning::types::{RuleSource, UserFeedback};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorDiagnoser` and `FeedbackProcessor`
[INFO] [stdout]  --> src/agent.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::learning::{ErrorDiagnoser, FeedbackProcessor, PromptEvolution};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuleSource` and `UserFeedback`
[INFO] [stdout]  --> src/agent.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::learning::types::{RuleSource, UserFeedback};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ScanSummary`
[INFO] [stdout]  --> src/skills/status.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::scanner::{scan_skill_directory, ScanSummary};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillInstaller` and `SkillSource`
[INFO] [stdout]   --> src/skills/status.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::types::{Skill, SkillInstaller, SkillSource};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/skills/watcher.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecommendedWatcher`
[INFO] [stdout]   --> src/skills/watcher.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use notify::{RecommendedWatcher, RecursiveMode, Watcher, Event, EventKind};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ScanSummary`
[INFO] [stdout]  --> src/skills/status.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::scanner::{scan_skill_directory, ScanSummary};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillInstaller` and `SkillSource`
[INFO] [stdout]   --> src/skills/status.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::types::{Skill, SkillInstaller, SkillSource};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/skills/watcher.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecommendedWatcher`
[INFO] [stdout]   --> src/skills/watcher.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use notify::{RecommendedWatcher, RecursiveMode, Watcher, Event, EventKind};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/memory_v2/retriever.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::store::{self, MemoryStore};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/memory_v2/retriever.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::store::{self, MemoryStore};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sub_agents/types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LearnedRule`
[INFO] [stdout]  --> src/learning/error_diagnosis.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::learning::types::{ErrorCategory, LearnedRule, RuleSource};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sub_agents/types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LearnedRule`
[INFO] [stdout]  --> src/learning/error_diagnosis.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::learning::types::{ErrorCategory, LearnedRule, RuleSource};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/api/handlers.rs:2484:11
[INFO] [stdout]      |
[INFO] [stdout] 2484 |     State(state): State<ApiState>,
[INFO] [stdout]      |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/api/handlers.rs:2484:11
[INFO] [stdout]      |
[INFO] [stdout] 2484 |     State(state): State<ApiState>,
[INFO] [stdout]      |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debounce`
[INFO] [stdout]   --> src/skills/watcher.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let debounce = Duration::from_millis(debounce_ms);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debounce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_id`
[INFO] [stdout]    --> src/tools/calendar.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_secret`
[INFO] [stdout]    --> src/tools/calendar.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_secret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debounce`
[INFO] [stdout]   --> src/skills/watcher.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let debounce = Duration::from_millis(debounce_ms);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debounce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_id`
[INFO] [stdout]    --> src/tools/calendar.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_secret`
[INFO] [stdout]    --> src/tools/calendar.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_secret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorDiagnoser` and `FeedbackProcessor`
[INFO] [stdout]  --> src/agent.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::learning::{ErrorDiagnoser, FeedbackProcessor, PromptEvolution};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorDiagnoser` and `FeedbackProcessor`
[INFO] [stdout]  --> src/agent.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::learning::{ErrorDiagnoser, FeedbackProcessor, PromptEvolution};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuleSource` and `UserFeedback`
[INFO] [stdout]  --> src/agent.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::learning::types::{RuleSource, UserFeedback};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuleSource` and `UserFeedback`
[INFO] [stdout]  --> src/agent.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::learning::types::{RuleSource, UserFeedback};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LearnedRule`
[INFO] [stdout]  --> src/learning/error_diagnosis.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::learning::types::{ErrorCategory, LearnedRule, RuleSource};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AutoScorer` and `ScoreResult`
[INFO] [stdout]  --> src/learning/mod.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use auto_scorer::{AutoScorer, ScoreResult};
[INFO] [stdout]   |                       ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GeneratedSkill` and `SkillEvolver`
[INFO] [stdout]   --> src/learning/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use skill_evolver::{GeneratedSkill, SkillEvolver};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConversationInsight`, `ErrorCategory`, `InsightType`, `LearnedRule`, `RuleSource`, and `UserFeedback`
[INFO] [stdout]   --> src/learning/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use types::{ConversationInsight, ErrorCategory, InsightType, LearnedRule, RuleSource, UserFeedback};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LearnedRule`
[INFO] [stdout]  --> src/learning/error_diagnosis.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::learning::types::{ErrorCategory, LearnedRule, RuleSource};
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AutoScorer` and `ScoreResult`
[INFO] [stdout]  --> src/learning/mod.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use auto_scorer::{AutoScorer, ScoreResult};
[INFO] [stdout]   |                       ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GeneratedSkill` and `SkillEvolver`
[INFO] [stdout]   --> src/learning/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use skill_evolver::{GeneratedSkill, SkillEvolver};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConversationInsight`, `ErrorCategory`, `InsightType`, `LearnedRule`, `RuleSource`, and `UserFeedback`
[INFO] [stdout]   --> src/learning/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use types::{ConversationInsight, ErrorCategory, InsightType, LearnedRule, RuleSource, UserFeedback};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `agent::MarketingAgent`
[INFO] [stdout]  --> src/marketing/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use agent::MarketingAgent;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ContentPiece`, `ContentStrategy`, `ContentTone`, `MarketingReport`, and `PlatformMetrics`
[INFO] [stdout]  --> src/marketing/mod.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use types::{ContentPiece, ContentStrategy, ContentTone, MarketingReport, PlatformMetrics};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::McpClient`
[INFO] [stdout]  --> src/mcp/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use client::McpClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `McpServerConfig`, `McpToolDef`, `McpToolResult`, and `McpTransportType`
[INFO] [stdout]  --> src/mcp/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use types::{McpServerConfig, McpToolDef, McpToolResult, McpTransportType};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `agent::MarketingAgent`
[INFO] [stdout]  --> src/marketing/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use agent::MarketingAgent;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/memory_v2/retriever.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::store::{self, MemoryStore};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ContentPiece`, `ContentStrategy`, `ContentTone`, `MarketingReport`, and `PlatformMetrics`
[INFO] [stdout]  --> src/marketing/mod.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use types::{ContentPiece, ContentStrategy, ContentTone, MarketingReport, PlatformMetrics};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `consolidator::MemoryConsolidator`
[INFO] [stdout]   --> src/memory_v2/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use consolidator::MemoryConsolidator;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::McpClient`
[INFO] [stdout]  --> src/mcp/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use client::McpClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `McpServerConfig`, `McpToolDef`, `McpToolResult`, and `McpTransportType`
[INFO] [stdout]  --> src/mcp/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use types::{McpServerConfig, McpToolDef, McpToolResult, McpTransportType};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsolidationReport`, `MatchSource`, `MemorySearchResult`, `MemoryType`, and `MemoryUnit`
[INFO] [stdout]   --> src/memory_v2/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use types::{ConsolidationReport, MatchSource, MemorySearchResult, MemoryType, MemoryUnit, RetrievalMode};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/memory_v2/retriever.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::store::{self, MemoryStore};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `consolidator::MemoryConsolidator`
[INFO] [stdout]   --> src/memory_v2/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use consolidator::MemoryConsolidator;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsolidationReport`, `MatchSource`, `MemorySearchResult`, `MemoryType`, and `MemoryUnit`
[INFO] [stdout]   --> src/memory_v2/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use types::{ConsolidationReport, MatchSource, MemorySearchResult, MemoryType, MemoryUnit, RetrievalMode};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ScanSummary`
[INFO] [stdout]  --> src/skills/status.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::scanner::{scan_skill_directory, ScanSummary};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillInstaller` and `SkillSource`
[INFO] [stdout]   --> src/skills/status.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::types::{Skill, SkillInstaller, SkillSource};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/skills/watcher.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecommendedWatcher`
[INFO] [stdout]   --> src/skills/watcher.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use notify::{RecommendedWatcher, RecursiveMode, Watcher, Event, EventKind};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillsConfig` and `SkillsLimits`
[INFO] [stdout]   --> src/skills/mod.rs:30:36
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use config::{SkillEntryConfig, SkillsConfig, SkillsLimits};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ScanSummary`
[INFO] [stdout]  --> src/skills/status.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::scanner::{scan_skill_directory, ScanSummary};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillInstaller` and `SkillSource`
[INFO] [stdout]   --> src/skills/status.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::types::{Skill, SkillInstaller, SkillSource};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `format_matched_skills` and `format_skills_xml`
[INFO] [stdout]   --> src/skills/mod.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use prompt::{format_matched_skills, format_skills_xml};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ScanSummary` and `verify_contained_path`
[INFO] [stdout]   --> src/skills/mod.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{scan_skill_directory, verify_contained_path, ScanSummary};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/skills/watcher.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillStatusEntry` and `SkillStatusReport`
[INFO] [stdout]   --> src/skills/mod.rs:35:39
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub use status::{build_status_report, SkillStatusEntry, SkillStatusReport};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RecommendedWatcher`
[INFO] [stdout]   --> src/skills/watcher.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use notify::{RecommendedWatcher, RecursiveMode, Watcher, Event, EventKind};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillMeta` and `Skill`
[INFO] [stdout]   --> src/skills/mod.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use types::{Skill, SkillMeta, SkillSource};
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillsConfig` and `SkillsLimits`
[INFO] [stdout]   --> src/skills/mod.rs:30:36
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use config::{SkillEntryConfig, SkillsConfig, SkillsLimits};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `format_matched_skills` and `format_skills_xml`
[INFO] [stdout]   --> src/skills/mod.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use prompt::{format_matched_skills, format_skills_xml};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ScanSummary` and `verify_contained_path`
[INFO] [stdout]   --> src/skills/mod.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{scan_skill_directory, verify_contained_path, ScanSummary};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillStatusEntry` and `SkillStatusReport`
[INFO] [stdout]   --> src/skills/mod.rs:35:39
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub use status::{build_status_report, SkillStatusEntry, SkillStatusReport};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillMeta` and `Skill`
[INFO] [stdout]   --> src/skills/mod.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use types::{Skill, SkillMeta, SkillSource};
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PlatformProvider` and `post_image_to_linkedin`
[INFO] [stdout]  --> src/social/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     post_image_to_linkedin, BlueskyProvider, FacebookProvider, LinkedInProvider, PlatformProvider,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CampaignStatus`, `Campaign`, `PostAnalytics`, `PostStatus`, and `SocialPost`
[INFO] [stdout]   --> src/social/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Campaign, CampaignStatus, ContentType, Platform, PlatformConfig, PostAnalytics, PostStatus,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^^                                         ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 14 |     SocialPost,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PlatformProvider` and `post_image_to_linkedin`
[INFO] [stdout]  --> src/social/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     post_image_to_linkedin, BlueskyProvider, FacebookProvider, LinkedInProvider, PlatformProvider,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CampaignStatus`, `Campaign`, `PostAnalytics`, `PostStatus`, and `SocialPost`
[INFO] [stdout]   --> src/social/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Campaign, CampaignStatus, ContentType, Platform, PlatformConfig, PostAnalytics, PostStatus,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^^                                         ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 14 |     SocialPost,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamReceiver`
[INFO] [stdout]  --> src/streaming/mod.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use types::{StreamEvent, StreamReceiver, StreamSender, stream_channel};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sub_agents/types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamReceiver`
[INFO] [stdout]  --> src/streaming/mod.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use types::{StreamEvent, StreamReceiver, StreamSender, stream_channel};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sub_agents/types.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentManifest`
[INFO] [stdout]   --> src/sub_agents/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use manifest::{AgentManifest, AgentManifestRegistry, ManifestSource};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StoredSubAgent` and `SubAgentRun`
[INFO] [stdout]   --> src/sub_agents/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use store::{StoredSubAgent, SubAgentRun, SubAgentStore};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentManifest`
[INFO] [stdout]   --> src/sub_agents/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use manifest::{AgentManifest, AgentManifestRegistry, ManifestSource};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StoredSubAgent` and `SubAgentRun`
[INFO] [stdout]   --> src/sub_agents/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use store::{StoredSubAgent, SubAgentRun, SubAgentStore};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/api/handlers.rs:2484:11
[INFO] [stdout]      |
[INFO] [stdout] 2484 |     State(state): State<ApiState>,
[INFO] [stdout]      |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/api/handlers.rs:2484:11
[INFO] [stdout]      |
[INFO] [stdout] 2484 |     State(state): State<ApiState>,
[INFO] [stdout]      |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]     --> src/init.rs:1095:9
[INFO] [stdout]      |
[INFO] [stdout] 1095 |         platform: &str,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]     --> src/init.rs:1095:9
[INFO] [stdout]      |
[INFO] [stdout] 1095 |         platform: &str,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debounce`
[INFO] [stdout]   --> src/skills/watcher.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let debounce = Duration::from_millis(debounce_ms);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debounce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debounce`
[INFO] [stdout]   --> src/skills/watcher.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let debounce = Duration::from_millis(debounce_ms);
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debounce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_id`
[INFO] [stdout]    --> src/tools/calendar.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_secret`
[INFO] [stdout]    --> src/tools/calendar.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_secret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_id`
[INFO] [stdout]    --> src/tools/calendar.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_secret`
[INFO] [stdout]    --> src/tools/calendar.rs:164:44
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn load_tokens_from_vault(client_id: &str, client_secret: &str) -> Option<GoogleTokens> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_secret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mcp_registry`, `orchestrator`, `social_manager`, `prompt_evolution`, `memory_v2_store`, and `memory_v2_retriever` are never used
[INFO] [stdout]    --> src/agent.rs:638:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Agent {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub fn mcp_registry(&self) -> Option<&Arc<tokio::sync::Mutex<McpRegistry>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     pub fn orchestrator(&self) -> Option<&Arc<AgentOrchestrator>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 648 |     pub fn social_manager(&self) -> Option<&Arc<tokio::sync::Mutex<SocialManager>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn prompt_evolution(&self) -> Option<&Arc<tokio::sync::Mutex<PromptEvolution>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn memory_v2_store(&self) -> Option<&Arc<memory_v2::MemoryStore>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 663 |     pub fn memory_v2_retriever(&self) -> Option<&Arc<memory_v2::MemoryRetriever>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_evolution` is never read
[INFO] [stdout]    --> src/api/mod.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct ApiState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub prompt_evolution: Option<Arc<tokio::sync::Mutex<PromptEvolution>>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ApiState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `credentials_missing` is never used
[INFO] [stdout]   --> src/api/handlers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn credentials_missing(service: &str) -> (StatusCode, Json<ApiError>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryV2SearchRequest` is never constructed
[INFO] [stdout]     --> src/api/handlers.rs:4716:12
[INFO] [stdout]      |
[INFO] [stdout] 4716 | pub struct MemoryV2SearchRequest {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/config.rs:51:9
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct AppConfig {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub scheduler_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub social_instagram_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  73 |     pub instagram_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  74 |     pub instagram_user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  75 |
[INFO] [stdout]  76 |     pub social_tiktok_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  77 |     pub tiktok_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  78 |
[INFO] [stdout]  79 |     pub social_youtube_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  80 |     pub youtube_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  81 |
[INFO] [stdout]  82 |     pub social_pinterest_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  83 |     pub pinterest_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  84 |     pub pinterest_board_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  85 |
[INFO] [stdout]  86 |     pub social_reddit_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  87 |     pub reddit_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  88 |     pub reddit_subreddit: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]  89 |
[INFO] [stdout]  90 |     pub social_threads_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  91 |     pub threads_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub threads_user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]  93 |
[INFO] [stdout]  94 |     pub social_mastodon_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  95 |     pub mastodon_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  96 |     pub mastodon_instance: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |
[INFO] [stdout]  98 |     pub social_discord_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub discord_bot_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub discord_channel_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub discord_webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |
[INFO] [stdout] 103 |     pub social_slack_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     pub slack_bot_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     pub slack_channel: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 106 |
[INFO] [stdout] 107 |     pub social_medium_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 108 |     pub medium_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 109 |
[INFO] [stdout] 110 |     pub social_devto_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |     pub devto_api_key: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 112 |
[INFO] [stdout] 113 |     pub social_hashnode_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 |     pub hashnode_api_key: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |     pub hashnode_publication_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 |
[INFO] [stdout] 117 |     pub social_wordpress_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     pub wordpress_site_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 |     pub wordpress_username: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub wordpress_app_password: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub mcp_config_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub learning_auto_score: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 |     pub learning_judge_votes: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 |     pub learning_skill_evolution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub marketing_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compression_threshold`, `compression_enabled`, and `preserve_recent` are never read
[INFO] [stdout]   --> src/context.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ConversationContext {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     compression_threshold: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Whether compression is enabled.
[INFO] [stdout] 17 |     compression_enabled: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// Number of recent messages to preserve (not compress).
[INFO] [stdout] 19 |     preserve_recent: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_compression_enabled`, `needs_compression`, `messages_to_compress`, `apply_compression`, and `estimated_tokens` are never used
[INFO] [stdout]    --> src/context.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ConversationContext {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn set_compression_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn needs_compression(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn messages_to_compress(&self) -> &[Message] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn apply_compression(&mut self, summary: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn estimated_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookConfig` is never constructed
[INFO] [stdout]  --> src/hooks.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HookConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookPayload` is never constructed
[INFO] [stdout]   --> src/hooks.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct HookPayload {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PreHookOutcome` is never used
[INFO] [stdout]   --> src/hooks.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum PreHookOutcome {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookRunner` is never constructed
[INFO] [stdout]   --> src/hooks.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct HookRunner {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run_pre_tool`, `run_post_tool`, `run_command`, and `has_hooks` are never used
[INFO] [stdout]    --> src/hooks.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl HookRunner {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(config: HookConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub async fn run_pre_tool(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn run_post_tool(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     async fn run_command(&self, cmd: &str, payload: &HookPayload) -> Result<(i32, String)> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn has_hooks(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `system_service` is never read
[INFO] [stdout]     --> src/init.rs:1414:9
[INFO] [stdout]      |
[INFO] [stdout] 1412 | pub struct BackgroundConfig {
[INFO] [stdout]      |            ---------------- field in this struct
[INFO] [stdout] 1413 |     pub scheduler_enabled: bool,
[INFO] [stdout] 1414 |     pub system_service: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `BackgroundConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attendee_email` is never read
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct RsvpChange {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub attendee_email: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RsvpChange` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_user_events` is never used
[INFO] [stdout]    --> src/jobs/rsvp_monitor.rs:241:14
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub async fn fetch_user_events(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_VOTES` is never used
[INFO] [stdout]  --> src/learning/auto_scorer.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const DEFAULT_VOTES: usize = 3;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_votes` is never read
[INFO] [stdout]   --> src/learning/auto_scorer.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AutoScorer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 27 |     /// Number of judge votes per evaluation.
[INFO] [stdout] 28 |     num_votes: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_votes`, `evaluate`, `evaluate_and_learn`, and `build_judge_prompt` are never used
[INFO] [stdout]    --> src/learning/auto_scorer.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl AutoScorer {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  32 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn with_votes(mut self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub async fn evaluate(
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub async fn evaluate_and_learn(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn build_judge_prompt(user_instruction: &str, assistant_response: &str) -> Vec<Message> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `diagnose_and_learn` is never used
[INFO] [stdout]   --> src/learning/error_diagnosis.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl ErrorDiagnoser {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn diagnose_and_learn(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NEW_SKILLS` is never used
[INFO] [stdout]   --> src/learning/skill_evolver.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_NEW_SKILLS: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `output_dir` and `generated_names` are never read
[INFO] [stdout]   --> src/learning/skill_evolver.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SkillEvolver {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     output_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 46 |     /// Names of skills already generated (avoid duplicates).
[INFO] [stdout] 47 |     generated_names: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `recent_failures`, `generated_skill_names`, `evolve`, and `build_analysis_prompt` are never used
[INFO] [stdout]    --> src/learning/skill_evolver.rs:91:8
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl SkillEvolver {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn recent_failures(&self) -> Vec<&ConversationOutcome> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn generated_skill_names(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn evolve(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn build_analysis_prompt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConversationInsight` is never constructed
[INFO] [stdout]   --> src/learning/types.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ConversationInsight {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InsightType` is never used
[INFO] [stdout]   --> src/learning/types.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub enum InsightType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/llm/fallback.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl FallbackProvider {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 17 |     pub fn new(providers: Vec<Box<dyn LlmProvider>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content_queue` is never read
[INFO] [stdout]  --> src/marketing/agent.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MarketingAgent {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 8 |     strategies: Vec<ContentStrategy>,
[INFO] [stdout] 9 |     content_queue: Vec<ContentPiece>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_content`, `approve_content`, `approved_content`, and `content_queue` are never used
[INFO] [stdout]    --> src/marketing/agent.rs:45:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl MarketingAgent {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub async fn generate_content(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn approve_content(&mut self, content_id: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn approved_content(&self) -> Vec<&ContentPiece> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn content_queue(&self) -> &[ContentPiece] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MarketingReport` is never constructed
[INFO] [stdout]   --> src/marketing/types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MarketingReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlatformMetrics` is never constructed
[INFO] [stdout]   --> src/marketing/types.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct PlatformMetrics {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `server_name`, `transport`, `request_id`, and `initialized` are never read
[INFO] [stdout]   --> src/mcp/client.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct McpClient {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     pub server_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     transport: Box<dyn McpTransport>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]  9 |     request_id: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 10 |     tools: Vec<McpToolDef>,
[INFO] [stdout] 11 |     initialized: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next_id`, `initialize`, `discover_tools`, `call_tool`, and `close` are never used
[INFO] [stdout]    --> src/mcp/client.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl McpClient {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  15 |     pub fn new(server_name: &str, transport: Box<dyn McpTransport>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     fn next_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub async fn initialize(&mut self) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub async fn discover_tools(&mut self) -> Result<Vec<McpToolDef>, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn call_tool(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn close(&self) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_server`, `call_tool`, and `close_all` are never used
[INFO] [stdout]    --> src/mcp/registry.rs:22:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl McpRegistry {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub async fn add_server(&mut self, config: &McpServerConfig) -> Result<usize, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub async fn call_tool(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub async fn close_all(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send` and `close` are never used
[INFO] [stdout]   --> src/mcp/transport.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait McpTransport: Send + Sync {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] 11 |     async fn send(&self, request: &JsonRpcRequest) -> Result<JsonRpcResponse, String>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 12 |     async fn close(&self) -> Result<(), String>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StdioTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct StdioTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl StdioTransport {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 23 |     pub async fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct HttpTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mcp/transport.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl HttpTransport {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 102 |     pub fn new(url: &str, headers: Option<&HashMap<String, String>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcRequest` is never constructed
[INFO] [stdout]  --> src/mcp/types.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct JsonRpcRequest {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/types.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new(id: u64, method: &str, params: Option<serde_json::Value>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcResponse` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct JsonRpcResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcError` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct JsonRpcError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpServerConfig` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct McpServerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]   --> src/mcp/types.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn default_true() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `McpTransportType` is never used
[INFO] [stdout]   --> src/mcp/types.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum McpTransportType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpToolResult` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct McpToolResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpContent` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct McpContent {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `consolidate`, `merge_near_duplicates`, and `apply_importance_decay` are never used
[INFO] [stdout]    --> src/memory_v2/consolidator.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl<'a> MemoryConsolidator<'a> {
[INFO] [stdout]     | ------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn consolidate(&self) -> Result<ConsolidationReport> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn merge_near_duplicates(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn apply_importance_decay(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_threshold` is never used
[INFO] [stdout]   --> src/memory_v2/retriever.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl MemoryRetriever {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_threshold(&mut self, threshold: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]    --> src/memory_v2/types.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl RetrievalMode {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 129 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsolidationReport` is never constructed
[INFO] [stdout]    --> src/memory_v2/types.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct ConsolidationReport {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `use_pkce` is never read
[INFO] [stdout]   --> src/oauth.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OAuthConfig {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub use_pkce: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OAuthConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `token_type` and `scope` are never read
[INFO] [stdout]   --> src/oauth.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct TokenResponse {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub token_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 57 |     pub scope: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_oauth_flow` is never used
[INFO] [stdout]    --> src/oauth.rs:175:14
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub async fn run_oauth_flow(config: &OAuthConfig) -> Result<TokenResponse> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refresh_access_token` is never used
[INFO] [stdout]    --> src/oauth.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn refresh_access_token(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pkce_verifier` is never used
[INFO] [stdout]    --> src/oauth.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub fn generate_pkce_verifier() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pkce_challenge` is never used
[INFO] [stdout]    --> src/oauth.rs:449:8
[INFO] [stdout]     |
[INFO] [stdout] 449 | pub fn generate_pkce_challenge(verifier: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `twitter_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:458:8
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub fn twitter_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linkedin_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout] 476 | pub fn linkedin_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reddit_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 491 | pub fn reddit_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `overrides` and `workspace_root` are never read
[INFO] [stdout]   --> src/permissions.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PermissionPolicy {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     overrides: HashMap<String, ToolPermission>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 40 |     /// Workspace root for path-based checks.
[INFO] [stdout] 41 |     workspace_root: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PermissionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/permissions.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl PermissionPolicy {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn with_workspace_root(mut self, root: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn set_override(&mut self, tool_name: &str, perm: ToolPermission) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn check(&self, tool_name: &str, args: &serde_json::Value) -> PermissionOutcome {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn is_read_only_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn is_write_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn is_dangerous_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn check_workspace_path(&self, args: &serde_json::Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PermissionOutcome` is never used
[INFO] [stdout]    --> src/permissions.rs:173:10
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub enum PermissionOutcome {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Notifier` is never used
[INFO] [stdout]   --> src/scheduler.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub trait Notifier: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalNotifier` is never constructed
[INFO] [stdout]   --> src/scheduler.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct TerminalNotifier;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TelegramNotifier` is never constructed
[INFO] [stdout]   --> src/scheduler.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct TelegramNotifier {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/scheduler.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl TelegramNotifier {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 76 |     pub fn new(bot_token: String, chat_id: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `data_mut` is never used
[INFO] [stdout]    --> src/secrets.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl SecretsVault {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn data_mut(&mut self) -> &mut SecretsData {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `delete_session` and `stats` are never used
[INFO] [stdout]    --> src/sessions.rs:262:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl SessionStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn delete_session(&self, session_id: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn stats(&self) -> Result<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `names` is never used
[INFO] [stdout]    --> src/skills/registry.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl SkillRegistry {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn names(&self) -> Vec<&str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Info` is never constructed
[INFO] [stdout]   --> src/skills/scanner.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum ScanSeverity {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 15 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_contained_path` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn verify_contained_path(root: &Path, candidate: &Path) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_symlinks` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn has_symlinks(dir: &Path) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_symlinks_recursive` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn check_symlinks_recursive(dir: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SkillWatchEvent` is never used
[INFO] [stdout]   --> src/skills/watcher.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum SkillWatchEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_skill_dirs` is never used
[INFO] [stdout]   --> src/skills/watcher.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn watch_skill_dirs(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_memory`, `reset_memories`, and `index_document_chunk` are never used
[INFO] [stdout]    --> src/smart_memory.rs:426:18
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl SmartMemory {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub async fn get_memory(&self, id: &str) -> Result<Option<MemoryEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     pub async fn reset_memories(&self, user_id: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub async fn index_document_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `delete` and `fetch_analytics` are never used
[INFO] [stdout]   --> src/social/providers.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait PlatformProvider: Send + Sync {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn delete(&self, platform_post_id: &str) -> Result<(), String>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     async fn fetch_analytics(&self, platform_post_id: &str) -> Result<PostAnalytics, String>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstagramProvider` is never constructed
[INFO] [stdout]    --> src/social/providers.rs:728:12
[INFO] [stdout]     |
[INFO] [stdout] 728 | pub struct InstagramProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/social/providers.rs:734:12
[INFO] [stdout]     |
[INFO] [stdout] 733 | impl InstagramProvider {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 734 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TikTokProvider` is never constructed
[INFO] [stdout]    --> src/social/providers.rs:900:12
[INFO] [stdout]     |
[INFO] [stdout] 900 | pub struct TikTokProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/social/providers.rs:906:12
[INFO] [stdout]     |
[INFO] [stdout] 905 | impl TikTokProvider {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 906 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `YouTubeProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1026:12
[INFO] [stdout]      |
[INFO] [stdout] 1026 | pub struct YouTubeProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1032:12
[INFO] [stdout]      |
[INFO] [stdout] 1031 | impl YouTubeProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1032 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PinterestProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1167:12
[INFO] [stdout]      |
[INFO] [stdout] 1167 | pub struct PinterestProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1173:12
[INFO] [stdout]      |
[INFO] [stdout] 1172 | impl PinterestProvider {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] 1173 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedditProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1307:12
[INFO] [stdout]      |
[INFO] [stdout] 1307 | pub struct RedditProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1313:12
[INFO] [stdout]      |
[INFO] [stdout] 1312 | impl RedditProvider {
[INFO] [stdout]      | ------------------- associated function in this implementation
[INFO] [stdout] 1313 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadsProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1421:12
[INFO] [stdout]      |
[INFO] [stdout] 1421 | pub struct ThreadsProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1427:12
[INFO] [stdout]      |
[INFO] [stdout] 1426 | impl ThreadsProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1427 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MastodonProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1582:12
[INFO] [stdout]      |
[INFO] [stdout] 1582 | pub struct MastodonProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1588:12
[INFO] [stdout]      |
[INFO] [stdout] 1587 | impl MastodonProvider {
[INFO] [stdout]      | --------------------- associated function in this implementation
[INFO] [stdout] 1588 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscordProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1678:12
[INFO] [stdout]      |
[INFO] [stdout] 1678 | pub struct DiscordProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1684:12
[INFO] [stdout]      |
[INFO] [stdout] 1683 | impl DiscordProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1684 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlackProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1801:12
[INFO] [stdout]      |
[INFO] [stdout] 1801 | pub struct SlackProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1807:12
[INFO] [stdout]      |
[INFO] [stdout] 1806 | impl SlackProvider {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] 1807 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MediumProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1909:12
[INFO] [stdout]      |
[INFO] [stdout] 1909 | pub struct MediumProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1915:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 | impl MediumProvider {
[INFO] [stdout]      | ------------------- associated function in this implementation
[INFO] [stdout] 1915 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevToProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2000:12
[INFO] [stdout]      |
[INFO] [stdout] 2000 | pub struct DevToProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2006:12
[INFO] [stdout]      |
[INFO] [stdout] 2005 | impl DevToProvider {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] 2006 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HashnodeProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2132:12
[INFO] [stdout]      |
[INFO] [stdout] 2132 | pub struct HashnodeProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2138:12
[INFO] [stdout]      |
[INFO] [stdout] 2137 | impl HashnodeProvider {
[INFO] [stdout]      | --------------------- associated function in this implementation
[INFO] [stdout] 2138 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WordPressProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2217:12
[INFO] [stdout]      |
[INFO] [stdout] 2217 | pub struct WordPressProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2223:12
[INFO] [stdout]      |
[INFO] [stdout] 2222 | impl WordPressProvider {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] 2223 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PostAnalytics` is never constructed
[INFO] [stdout]    --> src/social/types.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct PostAnalytics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `event_to_sse` is never used
[INFO] [stdout]   --> src/streaming/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn event_to_sse(event: &StreamEvent) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/sub_agents/manifest.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl AgentManifestRegistry {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status`, `get_result`, and `wait_for` are never used
[INFO] [stdout]    --> src/sub_agents/orchestrator.rs:438:18
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl AgentOrchestrator {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn status(&self, id: &str) -> Option<SubAgentStatus> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub async fn get_result(&self, id: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 516 |     pub async fn wait_for(&self, id: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/sub_agents/store.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl SubAgentStore {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn get(&self, id: &str) -> Result<Option<StoredSubAgent>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_config` is never used
[INFO] [stdout]   --> src/tools/document_loader.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl DocumentLoader {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn with_config(config: DocumentLoaderConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_config` and `loader` are never used
[INFO] [stdout]     --> src/tools/document_loader.rs:1088:12
[INFO] [stdout]      |
[INFO] [stdout] 1081 | impl DocumentLoaderTool {
[INFO] [stdout]      | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1088 |     pub fn with_config(config: DocumentLoaderConfig) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1095 |     pub fn loader(&self) -> &DocumentLoader {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remember`, `recall`, `forget`, and `search_knowledge` are never used
[INFO] [stdout]   --> src/traits.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait MemoryProvider: Send + Sync {
[INFO] [stdout]    |           -------------- methods in this trait
[INFO] [stdout] 16 |     /// Store a fact/memory for a user.
[INFO] [stdout] 17 |     async fn remember(
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     async fn recall(&self, query: &str, user_id: &str, limit: usize) -> Result<Vec<MemoryEntry>>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     async fn forget(&self, id: &str) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     async fn search_knowledge(&self, query: &str, limit: usize) -> Result<Vec<KnowledgeEntry>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToolProvider` is never used
[INFO] [stdout]   --> src/traits.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub trait ToolProvider: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SubAgent` is never used
[INFO] [stdout]   --> src/traits.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub trait SubAgent: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pricing` is never read
[INFO] [stdout]    --> src/usage.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct UsageTracker {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 114 |     model: String,
[INFO] [stdout] 115 |     pricing: ModelPricing,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UsageTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_model` is never used
[INFO] [stdout]    --> src/usage.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl UsageTracker {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_model(&mut self, model: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sender` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct GitHubWebhookPayload {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 69 |     pub action: Option<String>,
[INFO] [stdout] 70 |     pub sender: Option<GitHubUser>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubWebhookPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `login` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct GitHubUser {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 78 |     pub login: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubUser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `html_url` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct GitHubPR {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub html_url: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubPR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `html_url` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct GitHubIssue {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub html_url: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubIssue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlackChallengeResponse` is never constructed
[INFO] [stdout]    --> src/webhooks/server.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct SlackChallengeResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mcp_registry`, `orchestrator`, `social_manager`, `prompt_evolution`, `memory_v2_store`, and `memory_v2_retriever` are never used
[INFO] [stdout]    --> src/agent.rs:638:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Agent {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub fn mcp_registry(&self) -> Option<&Arc<tokio::sync::Mutex<McpRegistry>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     pub fn orchestrator(&self) -> Option<&Arc<AgentOrchestrator>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 648 |     pub fn social_manager(&self) -> Option<&Arc<tokio::sync::Mutex<SocialManager>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn prompt_evolution(&self) -> Option<&Arc<tokio::sync::Mutex<PromptEvolution>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn memory_v2_store(&self) -> Option<&Arc<memory_v2::MemoryStore>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 663 |     pub fn memory_v2_retriever(&self) -> Option<&Arc<memory_v2::MemoryRetriever>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `prompt_evolution` is never read
[INFO] [stdout]    --> src/api/mod.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct ApiState {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub prompt_evolution: Option<Arc<tokio::sync::Mutex<PromptEvolution>>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ApiState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `credentials_missing` is never used
[INFO] [stdout]   --> src/api/handlers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn credentials_missing(service: &str) -> (StatusCode, Json<ApiError>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryV2SearchRequest` is never constructed
[INFO] [stdout]     --> src/api/handlers.rs:4716:12
[INFO] [stdout]      |
[INFO] [stdout] 4716 | pub struct MemoryV2SearchRequest {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/config.rs:51:9
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct AppConfig {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub scheduler_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub social_instagram_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  73 |     pub instagram_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  74 |     pub instagram_user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  75 |
[INFO] [stdout]  76 |     pub social_tiktok_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  77 |     pub tiktok_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  78 |
[INFO] [stdout]  79 |     pub social_youtube_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  80 |     pub youtube_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  81 |
[INFO] [stdout]  82 |     pub social_pinterest_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  83 |     pub pinterest_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  84 |     pub pinterest_board_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  85 |
[INFO] [stdout]  86 |     pub social_reddit_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  87 |     pub reddit_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  88 |     pub reddit_subreddit: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]  89 |
[INFO] [stdout]  90 |     pub social_threads_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  91 |     pub threads_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub threads_user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]  93 |
[INFO] [stdout]  94 |     pub social_mastodon_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  95 |     pub mastodon_access_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  96 |     pub mastodon_instance: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |
[INFO] [stdout]  98 |     pub social_discord_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub discord_bot_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub discord_channel_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub discord_webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |
[INFO] [stdout] 103 |     pub social_slack_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     pub slack_bot_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 105 |     pub slack_channel: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 106 |
[INFO] [stdout] 107 |     pub social_medium_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 108 |     pub medium_token: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 109 |
[INFO] [stdout] 110 |     pub social_devto_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |     pub devto_api_key: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 112 |
[INFO] [stdout] 113 |     pub social_hashnode_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 |     pub hashnode_api_key: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |     pub hashnode_publication_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 |
[INFO] [stdout] 117 |     pub social_wordpress_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     pub wordpress_site_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 |     pub wordpress_username: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub wordpress_app_password: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub mcp_config_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub learning_auto_score: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 |     pub learning_judge_votes: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 |     pub learning_skill_evolution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub marketing_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compression_threshold`, `compression_enabled`, and `preserve_recent` are never read
[INFO] [stdout]   --> src/context.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ConversationContext {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     compression_threshold: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Whether compression is enabled.
[INFO] [stdout] 17 |     compression_enabled: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// Number of recent messages to preserve (not compress).
[INFO] [stdout] 19 |     preserve_recent: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_compression_enabled`, `needs_compression`, `messages_to_compress`, `apply_compression`, and `estimated_tokens` are never used
[INFO] [stdout]    --> src/context.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl ConversationContext {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn set_compression_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn needs_compression(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn messages_to_compress(&self) -> &[Message] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn apply_compression(&mut self, summary: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn estimated_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookConfig` is never constructed
[INFO] [stdout]  --> src/hooks.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HookConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookPayload` is never constructed
[INFO] [stdout]   --> src/hooks.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct HookPayload {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PreHookOutcome` is never used
[INFO] [stdout]   --> src/hooks.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum PreHookOutcome {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HookRunner` is never constructed
[INFO] [stdout]   --> src/hooks.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct HookRunner {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run_pre_tool`, `run_post_tool`, `run_command`, and `has_hooks` are never used
[INFO] [stdout]    --> src/hooks.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl HookRunner {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(config: HookConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub async fn run_pre_tool(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn run_post_tool(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     async fn run_command(&self, cmd: &str, payload: &HookPayload) -> Result<(i32, String)> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn has_hooks(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `system_service` is never read
[INFO] [stdout]     --> src/init.rs:1414:9
[INFO] [stdout]      |
[INFO] [stdout] 1412 | pub struct BackgroundConfig {
[INFO] [stdout]      |            ---------------- field in this struct
[INFO] [stdout] 1413 |     pub scheduler_enabled: bool,
[INFO] [stdout] 1414 |     pub system_service: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `BackgroundConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsvpState` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RsvpState {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventRsvpState` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct EventRsvpState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AttendeeState` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AttendeeState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CalendarAttendee` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct CalendarAttendee {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CalendarEvent` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct CalendarEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventDateTime` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct EventDateTime {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventOrganizer` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct EventOrganizer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RsvpChange` is never constructed
[INFO] [stdout]   --> src/jobs/rsvp_monitor.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct RsvpChange {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `file_path`, `load`, `save`, and `check_changes` are never used
[INFO] [stdout]    --> src/jobs/rsvp_monitor.rs:83:8
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl RsvpState {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  83 |     fn file_path(data_dir: &Path) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn load(data_dir: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn save(&self, data_dir: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn check_changes(&mut self, events: &[CalendarEvent]) -> Vec<RsvpChange> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_rsvp_notification` is never used
[INFO] [stdout]    --> src/jobs/rsvp_monitor.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn format_rsvp_notification(changes: &[RsvpChange]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_label` is never used
[INFO] [stdout]    --> src/jobs/rsvp_monitor.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn status_label(status: &str) -> &str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_user_events` is never used
[INFO] [stdout]    --> src/jobs/rsvp_monitor.rs:241:14
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub async fn fetch_user_events(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReminderState` is never constructed
[INFO] [stdout]   --> src/jobs/reminders.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ReminderState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpcomingMeeting` is never constructed
[INFO] [stdout]   --> src/jobs/reminders.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct UpcomingMeeting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `file_path`, `load`, `save`, `check_upcoming`, and `mark_sent` are never used
[INFO] [stdout]   --> src/jobs/reminders.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ReminderState {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 30 |     fn file_path(data_dir: &Path) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn load(data_dir: &Path) -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn save(&self, data_dir: &Path) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn check_upcoming<'a>(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn mark_sent(&mut self, event_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_meeting_reminder` is never used
[INFO] [stdout]   --> src/jobs/reminders.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn format_meeting_reminder(meeting: &UpcomingMeeting) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_VOTES` is never used
[INFO] [stdout]  --> src/learning/auto_scorer.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const DEFAULT_VOTES: usize = 3;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreResult` is never constructed
[INFO] [stdout]   --> src/learning/auto_scorer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ScoreResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AutoScorer` is never constructed
[INFO] [stdout]   --> src/learning/auto_scorer.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AutoScorer {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/learning/auto_scorer.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl AutoScorer {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  32 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn with_votes(mut self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub async fn evaluate(
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub async fn evaluate_and_learn(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn build_judge_prompt(user_instruction: &str, assistant_response: &str) -> Vec<Message> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn parse_score(text: &str) -> i8 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn majority_vote(votes: &[i8]) -> i8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn extract_failure_reason(explanation: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]    --> src/learning/auto_scorer.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn truncate(s: &str, max: usize) -> &str {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorDiagnoser` is never constructed
[INFO] [stdout]  --> src/learning/error_diagnosis.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ErrorDiagnoser;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `categorize`, `suggest_rule`, and `diagnose_and_learn` are never used
[INFO] [stdout]   --> src/learning/error_diagnosis.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl ErrorDiagnoser {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout]  8 |     /// Categorize an error message.
[INFO] [stdout]  9 |     pub fn categorize(error_msg: &str) -> ErrorCategory {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn suggest_rule(error_msg: &str, context: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn diagnose_and_learn(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIDENCE_DECAY` is never used
[INFO] [stdout]  --> src/learning/prompt_evolution.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CONFIDENCE_DECAY: f64 = 0.05;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_success` and `record_failure` are never used
[INFO] [stdout]   --> src/learning/prompt_evolution.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PromptEvolution {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn record_success(&self, rule_id: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn record_failure(&self, rule_id: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_FAILURES_FOR_EVOLUTION` is never used
[INFO] [stdout]  --> src/learning/skill_evolver.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MIN_FAILURES_FOR_EVOLUTION: usize = 3;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVOLUTION_THRESHOLD` is never used
[INFO] [stdout]   --> src/learning/skill_evolver.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const EVOLUTION_THRESHOLD: f64 = 0.4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NEW_SKILLS` is never used
[INFO] [stdout]   --> src/learning/skill_evolver.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_NEW_SKILLS: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConversationOutcome` is never constructed
[INFO] [stdout]   --> src/learning/skill_evolver.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ConversationOutcome {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeneratedSkill` is never constructed
[INFO] [stdout]   --> src/learning/skill_evolver.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct GeneratedSkill {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillEvolver` is never constructed
[INFO] [stdout]   --> src/learning/skill_evolver.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SkillEvolver {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/learning/skill_evolver.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl SkillEvolver {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  51 |     pub fn new(output_dir: &Path) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn record_outcome(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn should_evolve(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn recent_failures(&self) -> Vec<&ConversationOutcome> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn outcome_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn generated_skill_names(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn evolve(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn build_analysis_prompt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     fn parse_skills_response(&self, response: &str) -> Vec<GeneratedSkill> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn render_skill_md(&self, skill: &GeneratedSkill) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate_string` is never used
[INFO] [stdout]    --> src/learning/skill_evolver.rs:320:4
[INFO] [stdout]     |
[INFO] [stdout] 320 | fn truncate_string(s: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorCategory` is never used
[INFO] [stdout]   --> src/learning/types.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ErrorCategory {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConversationInsight` is never constructed
[INFO] [stdout]   --> src/learning/types.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ConversationInsight {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InsightType` is never used
[INFO] [stdout]   --> src/learning/types.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub enum InsightType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/llm/fallback.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl FallbackProvider {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 17 |     pub fn new(providers: Vec<Box<dyn LlmProvider>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MarketingAgent` is never constructed
[INFO] [stdout]  --> src/marketing/agent.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MarketingAgent {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/marketing/agent.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl MarketingAgent {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn create_strategy(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub async fn generate_content(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn approve_content(&mut self, content_id: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn approved_content(&self) -> Vec<&ContentPiece> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn strategies(&self) -> &[ContentStrategy] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn content_queue(&self) -> &[ContentPiece] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_hashtags` is never used
[INFO] [stdout]    --> src/marketing/agent.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn extract_hashtags(content: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContentStrategy` is never constructed
[INFO] [stdout]  --> src/marketing/types.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ContentStrategy {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ContentTone` is never used
[INFO] [stdout]   --> src/marketing/types.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ContentTone {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContentPiece` is never constructed
[INFO] [stdout]   --> src/marketing/types.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ContentPiece {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MarketingReport` is never constructed
[INFO] [stdout]   --> src/marketing/types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MarketingReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlatformMetrics` is never constructed
[INFO] [stdout]   --> src/marketing/types.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct PlatformMetrics {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `server_name`, `transport`, `request_id`, and `initialized` are never read
[INFO] [stdout]   --> src/mcp/client.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct McpClient {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     pub server_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     transport: Box<dyn McpTransport>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]  9 |     request_id: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 10 |     tools: Vec<McpToolDef>,
[INFO] [stdout] 11 |     initialized: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next_id`, `initialize`, `discover_tools`, `call_tool`, and `close` are never used
[INFO] [stdout]    --> src/mcp/client.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl McpClient {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  15 |     pub fn new(server_name: &str, transport: Box<dyn McpTransport>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     fn next_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub async fn initialize(&mut self) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub async fn discover_tools(&mut self) -> Result<Vec<McpToolDef>, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn call_tool(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn close(&self) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_server`, `call_tool`, `tool_count`, `server_count`, and `close_all` are never used
[INFO] [stdout]    --> src/mcp/registry.rs:22:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl McpRegistry {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub async fn add_server(&mut self, config: &McpServerConfig) -> Result<usize, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub async fn call_tool(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn tool_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub async fn close_all(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_name` is never used
[INFO] [stdout]    --> src/mcp/registry.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn sanitize_name(name: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send` and `close` are never used
[INFO] [stdout]   --> src/mcp/transport.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait McpTransport: Send + Sync {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] 11 |     async fn send(&self, request: &JsonRpcRequest) -> Result<JsonRpcResponse, String>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 12 |     async fn close(&self) -> Result<(), String>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StdioTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct StdioTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/transport.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl StdioTransport {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 23 |     pub async fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpTransport` is never constructed
[INFO] [stdout]   --> src/mcp/transport.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct HttpTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mcp/transport.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl HttpTransport {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 102 |     pub fn new(url: &str, headers: Option<&HashMap<String, String>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcRequest` is never constructed
[INFO] [stdout]  --> src/mcp/types.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct JsonRpcRequest {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mcp/types.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new(id: u64, method: &str, params: Option<serde_json::Value>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcResponse` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct JsonRpcResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonRpcError` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct JsonRpcError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpServerConfig` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct McpServerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]   --> src/mcp/types.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn default_true() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `McpTransportType` is never used
[INFO] [stdout]   --> src/mcp/types.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum McpTransportType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpToolResult` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct McpToolResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpContent` is never constructed
[INFO] [stdout]   --> src/mcp/types.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct McpContent {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryConsolidator` is never constructed
[INFO] [stdout]  --> src/memory_v2/consolidator.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct MemoryConsolidator<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `consolidate`, `dedup_exact`, `merge_near_duplicates`, `apply_importance_decay`, and `prune_stale_summaries` are never used
[INFO] [stdout]    --> src/memory_v2/consolidator.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl<'a> MemoryConsolidator<'a> {
[INFO] [stdout]     | ------------------------------- associated items in this implementation
[INFO] [stdout]  14 |     pub fn new(store: &'a MemoryStore) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn consolidate(&self) -> Result<ConsolidationReport> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     fn dedup_exact(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn merge_near_duplicates(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn apply_importance_decay(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn prune_stale_summaries(&self) -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jaccard_similarity` is never used
[INFO] [stdout]    --> src/memory_v2/consolidator.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn jaccard_similarity(a: &str, b: &str) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_threshold` is never used
[INFO] [stdout]   --> src/memory_v2/retriever.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl MemoryRetriever {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_threshold(&mut self, threshold: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `update`, `delete`, `count`, `count_by_type`, and `all_units` are never used
[INFO] [stdout]    --> src/memory_v2/store.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl MemoryStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get(&self, id: &str) -> Result<Option<MemoryUnit>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn update(&self, unit: &MemoryUnit) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn delete(&self, id: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn count(&self, user_id: &str) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn count_by_type(&self, user_id: &str) -> Result<std::collections::HashMap<String, usize>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn all_units(&self) -> Result<Vec<MemoryUnit>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]    --> src/memory_v2/types.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl RetrievalMode {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 129 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsolidationReport` is never constructed
[INFO] [stdout]    --> src/memory_v2/types.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct ConsolidationReport {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `provider`, `extra_params`, and `use_pkce` are never read
[INFO] [stdout]   --> src/oauth.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OAuthConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 30 |     /// Provider name (for display)
[INFO] [stdout] 31 |     pub provider: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub extra_params: HashMap<String, String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Enable PKCE (Proof Key for Code Exchange) for public clients
[INFO] [stdout] 47 |     pub use_pkce: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OAuthConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `token_type` and `scope` are never read
[INFO] [stdout]   --> src/oauth.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct TokenResponse {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub token_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 57 |     pub scope: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_oauth_config` is never used
[INFO] [stdout]   --> src/oauth.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn github_oauth_config(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slack_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn slack_oauth_config(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_github_scopes` is never used
[INFO] [stdout]    --> src/oauth.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn default_github_scopes() -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_slack_scopes` is never used
[INFO] [stdout]    --> src/oauth.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub fn default_slack_scopes() -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_oauth_flow` is never used
[INFO] [stdout]    --> src/oauth.rs:175:14
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub async fn run_oauth_flow(config: &OAuthConfig) -> Result<TokenResponse> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refresh_access_token` is never used
[INFO] [stdout]    --> src/oauth.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn refresh_access_token(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pkce_verifier` is never used
[INFO] [stdout]    --> src/oauth.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub fn generate_pkce_verifier() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pkce_challenge` is never used
[INFO] [stdout]    --> src/oauth.rs:449:8
[INFO] [stdout]     |
[INFO] [stdout] 449 | pub fn generate_pkce_challenge(verifier: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `twitter_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:458:8
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub fn twitter_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linkedin_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout] 476 | pub fn linkedin_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reddit_oauth_config` is never used
[INFO] [stdout]    --> src/oauth.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 491 | pub fn reddit_oauth_config(client_id: &str, client_secret: &str) -> OAuthConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `overrides` and `workspace_root` are never read
[INFO] [stdout]   --> src/permissions.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PermissionPolicy {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     overrides: HashMap<String, ToolPermission>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 40 |     /// Workspace root for path-based checks.
[INFO] [stdout] 41 |     workspace_root: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PermissionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/permissions.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl PermissionPolicy {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn with_workspace_root(mut self, root: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn set_override(&mut self, tool_name: &str, perm: ToolPermission) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn check(&self, tool_name: &str, args: &serde_json::Value) -> PermissionOutcome {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn is_read_only_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn is_write_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn is_dangerous_tool(name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn check_workspace_path(&self, args: &serde_json::Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PermissionOutcome` is never used
[INFO] [stdout]    --> src/permissions.rs:173:10
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub enum PermissionOutcome {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Notifier` is never used
[INFO] [stdout]   --> src/scheduler.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub trait Notifier: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalNotifier` is never constructed
[INFO] [stdout]   --> src/scheduler.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct TerminalNotifier;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TelegramNotifier` is never constructed
[INFO] [stdout]   --> src/scheduler.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct TelegramNotifier {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/scheduler.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl TelegramNotifier {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 76 |     pub fn new(bot_token: String, chat_id: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `data_mut` is never used
[INFO] [stdout]    --> src/secrets.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl SecretsVault {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn data_mut(&mut self) -> &mut SecretsData {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `delete_session` and `stats` are never used
[INFO] [stdout]    --> src/sessions.rs:262:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl SessionStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn delete_session(&self, session_id: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn stats(&self) -> Result<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillsConfig` is never constructed
[INFO] [stdout]   --> src/skills/config.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SkillsConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkillsLimits` is never constructed
[INFO] [stdout]   --> src/skills/config.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SkillsLimits {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_explicitly_enabled` is never used
[INFO] [stdout]   --> src/skills/config.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl SkillEntryConfig {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn is_explicitly_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]    --> src/skills/config.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn default_true() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_retrieval_mode` is never used
[INFO] [stdout]    --> src/skills/config.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn default_retrieval_mode() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_top_k` is never used
[INFO] [stdout]    --> src/skills/config.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn default_top_k() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_prompt_chars` is never used
[INFO] [stdout]    --> src/skills/config.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn default_max_prompt_chars() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_candidates` is never used
[INFO] [stdout]    --> src/skills/config.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn default_max_candidates() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_per_source` is never used
[INFO] [stdout]    --> src/skills/config.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn default_max_per_source() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_in_prompt` is never used
[INFO] [stdout]    --> src/skills/config.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn default_max_in_prompt() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_file_bytes` is never used
[INFO] [stdout]    --> src/skills/config.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn default_max_file_bytes() -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_skills_xml` is never used
[INFO] [stdout]   --> src/skills/prompt.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn format_skills_xml(skills: &[&Skill], compact_home: bool) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_matched_skills` is never used
[INFO] [stdout]   --> src/skills/prompt.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn format_matched_skills(skills: &[&Skill], max_chars: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_xml` is never used
[INFO] [stdout]   --> src/skills/prompt.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn escape_xml(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_path` is never used
[INFO] [stdout]    --> src/skills/prompt.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn compact_path(path: &str, home: Option<&str>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `names` are never used
[INFO] [stdout]    --> src/skills/registry.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl SkillRegistry {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn names(&self) -> Vec<&str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Info` is never constructed
[INFO] [stdout]   --> src/skills/scanner.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum ScanSeverity {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 15 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_contained_path` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn verify_contained_path(root: &Path, candidate: &Path) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_symlinks` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn has_symlinks(dir: &Path) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_symlinks_recursive` is never used
[INFO] [stdout]    --> src/skills/scanner.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn check_symlinks_recursive(dir: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SkillWatchEvent` is never used
[INFO] [stdout]   --> src/skills/watcher.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum SkillWatchEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `watch_skill_dirs` is never used
[INFO] [stdout]   --> src/skills/watcher.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn watch_skill_dirs(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_memory`, `reset_memories`, and `index_document_chunk` are never used
[INFO] [stdout]    --> src/smart_memory.rs:426:18
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl SmartMemory {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub async fn get_memory(&self, id: &str) -> Result<Option<MemoryEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     pub async fn reset_memories(&self, user_id: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub async fn index_document_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_post` and `campaign_posts` are never used
[INFO] [stdout]    --> src/social/manager.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl SocialManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn create_post(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn campaign_posts(&self, campaign_id: &str) -> Vec<&SocialPost> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `delete` and `fetch_analytics` are never used
[INFO] [stdout]   --> src/social/providers.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait PlatformProvider: Send + Sync {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn delete(&self, platform_post_id: &str) -> Result<(), String>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     async fn fetch_analytics(&self, platform_post_id: &str) -> Result<PostAnalytics, String>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstagramProvider` is never constructed
[INFO] [stdout]    --> src/social/providers.rs:728:12
[INFO] [stdout]     |
[INFO] [stdout] 728 | pub struct InstagramProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/social/providers.rs:734:12
[INFO] [stdout]     |
[INFO] [stdout] 733 | impl InstagramProvider {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 734 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TikTokProvider` is never constructed
[INFO] [stdout]    --> src/social/providers.rs:900:12
[INFO] [stdout]     |
[INFO] [stdout] 900 | pub struct TikTokProvider {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/social/providers.rs:906:12
[INFO] [stdout]     |
[INFO] [stdout] 905 | impl TikTokProvider {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 906 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `YouTubeProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1026:12
[INFO] [stdout]      |
[INFO] [stdout] 1026 | pub struct YouTubeProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1032:12
[INFO] [stdout]      |
[INFO] [stdout] 1031 | impl YouTubeProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1032 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PinterestProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1167:12
[INFO] [stdout]      |
[INFO] [stdout] 1167 | pub struct PinterestProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1173:12
[INFO] [stdout]      |
[INFO] [stdout] 1172 | impl PinterestProvider {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] 1173 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedditProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1307:12
[INFO] [stdout]      |
[INFO] [stdout] 1307 | pub struct RedditProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1313:12
[INFO] [stdout]      |
[INFO] [stdout] 1312 | impl RedditProvider {
[INFO] [stdout]      | ------------------- associated function in this implementation
[INFO] [stdout] 1313 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadsProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1421:12
[INFO] [stdout]      |
[INFO] [stdout] 1421 | pub struct ThreadsProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1427:12
[INFO] [stdout]      |
[INFO] [stdout] 1426 | impl ThreadsProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1427 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MastodonProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1582:12
[INFO] [stdout]      |
[INFO] [stdout] 1582 | pub struct MastodonProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1588:12
[INFO] [stdout]      |
[INFO] [stdout] 1587 | impl MastodonProvider {
[INFO] [stdout]      | --------------------- associated function in this implementation
[INFO] [stdout] 1588 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscordProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1678:12
[INFO] [stdout]      |
[INFO] [stdout] 1678 | pub struct DiscordProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1684:12
[INFO] [stdout]      |
[INFO] [stdout] 1683 | impl DiscordProvider {
[INFO] [stdout]      | -------------------- associated function in this implementation
[INFO] [stdout] 1684 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlackProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1801:12
[INFO] [stdout]      |
[INFO] [stdout] 1801 | pub struct SlackProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1807:12
[INFO] [stdout]      |
[INFO] [stdout] 1806 | impl SlackProvider {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] 1807 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MediumProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:1909:12
[INFO] [stdout]      |
[INFO] [stdout] 1909 | pub struct MediumProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:1915:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 | impl MediumProvider {
[INFO] [stdout]      | ------------------- associated function in this implementation
[INFO] [stdout] 1915 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevToProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2000:12
[INFO] [stdout]      |
[INFO] [stdout] 2000 | pub struct DevToProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2006:12
[INFO] [stdout]      |
[INFO] [stdout] 2005 | impl DevToProvider {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] 2006 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HashnodeProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2132:12
[INFO] [stdout]      |
[INFO] [stdout] 2132 | pub struct HashnodeProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2138:12
[INFO] [stdout]      |
[INFO] [stdout] 2137 | impl HashnodeProvider {
[INFO] [stdout]      | --------------------- associated function in this implementation
[INFO] [stdout] 2138 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WordPressProvider` is never constructed
[INFO] [stdout]     --> src/social/providers.rs:2217:12
[INFO] [stdout]      |
[INFO] [stdout] 2217 | pub struct WordPressProvider {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/social/providers.rs:2223:12
[INFO] [stdout]      |
[INFO] [stdout] 2222 | impl WordPressProvider {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] 2223 |     pub fn new(config: PlatformConfig) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sniff_image_mime` is never used
[INFO] [stdout]     --> src/social/providers.rs:2330:4
[INFO] [stdout]      |
[INFO] [stdout] 2330 | fn sniff_image_mime(bytes: &[u8]) -> Option<&'static str> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `post_image_to_linkedin` is never used
[INFO] [stdout]     --> src/social/providers.rs:2350:14
[INFO] [stdout]      |
[INFO] [stdout] 2350 | pub async fn post_image_to_linkedin(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PostAnalytics` is never constructed
[INFO] [stdout]    --> src/social/types.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct PostAnalytics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `event_to_sse` is never used
[INFO] [stdout]   --> src/streaming/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn event_to_sse(event: &StreamEvent) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/sub_agents/manifest.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl AgentManifestRegistry {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status`, `get_result`, and `wait_for` are never used
[INFO] [stdout]    --> src/sub_agents/orchestrator.rs:438:18
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl AgentOrchestrator {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn status(&self, id: &str) -> Option<SubAgentStatus> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub async fn get_result(&self, id: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 516 |     pub async fn wait_for(&self, id: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/sub_agents/store.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl SubAgentStore {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn get(&self, id: &str) -> Result<Option<StoredSubAgent>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_config` is never used
[INFO] [stdout]   --> src/tools/document_loader.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl DocumentLoader {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn with_config(config: DocumentLoaderConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_config` and `loader` are never used
[INFO] [stdout]     --> src/tools/document_loader.rs:1088:12
[INFO] [stdout]      |
[INFO] [stdout] 1081 | impl DocumentLoaderTool {
[INFO] [stdout]      | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1088 |     pub fn with_config(config: DocumentLoaderConfig) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1095 |     pub fn loader(&self) -> &DocumentLoader {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remember`, `recall`, `forget`, and `search_knowledge` are never used
[INFO] [stdout]   --> src/traits.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait MemoryProvider: Send + Sync {
[INFO] [stdout]    |           -------------- methods in this trait
[INFO] [stdout] 16 |     /// Store a fact/memory for a user.
[INFO] [stdout] 17 |     async fn remember(
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     async fn recall(&self, query: &str, user_id: &str, limit: usize) -> Result<Vec<MemoryEntry>>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     async fn forget(&self, id: &str) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     async fn search_knowledge(&self, query: &str, limit: usize) -> Result<Vec<KnowledgeEntry>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToolProvider` is never used
[INFO] [stdout]   --> src/traits.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub trait ToolProvider: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SubAgent` is never used
[INFO] [stdout]   --> src/traits.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub trait SubAgent: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pricing` is never read
[INFO] [stdout]    --> src/usage.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct UsageTracker {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 114 |     model: String,
[INFO] [stdout] 115 |     pricing: ModelPricing,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UsageTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_model` is never used
[INFO] [stdout]    --> src/usage.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl UsageTracker {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_model(&mut self, model: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sender` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct GitHubWebhookPayload {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 69 |     pub action: Option<String>,
[INFO] [stdout] 70 |     pub sender: Option<GitHubUser>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubWebhookPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `login` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct GitHubUser {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 78 |     pub login: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubUser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `html_url` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct GitHubPR {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub html_url: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubPR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `html_url` is never read
[INFO] [stdout]   --> src/webhooks/server.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct GitHubIssue {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub html_url: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitHubIssue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlackChallengeResponse` is never constructed
[INFO] [stdout]    --> src/webhooks/server.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct SlackChallengeResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 17s
[INFO] running `Command { std: "docker" "inspect" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b", kill_on_drop: false }`
[INFO] [stdout] d9dfc351ccf821e61aef8f67fefc249016be15a4d297f1c56e666e2d7b007c6b
